package cn.iocoder.yudao.module.alipay.dal.mysql.infoauthaliapp;

import java.util.*;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.alipay.dal.dataobject.infoauthaliapp.InfoAuthAliAppDO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.alipay.controller.admin.infoauthaliapp.vo.*;

/**
 * 授权应用信息 Mapper
 *
 * @author 芋道源码
 */
@Mapper
public interface InfoAuthAliAppMapper extends BaseMapperX<InfoAuthAliAppDO> {

    default PageResult<InfoAuthAliAppDO> selectPage(InfoAuthAliAppPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<InfoAuthAliAppDO>()
                .eqIfPresent(InfoAuthAliAppDO::getAppId, reqVO.getAppId())
                .eqIfPresent(InfoAuthAliAppDO::getThirdAppId, reqVO.getThirdAppId())
                .likeIfPresent(InfoAuthAliAppDO::getAppName, reqVO.getAppName())
                .eqIfPresent(InfoAuthAliAppDO::getAppState, reqVO.getAppState())
                .eqIfPresent(InfoAuthAliAppDO::getAutoReview, reqVO.getAutoReview())
                .betweenIfPresent(InfoAuthAliAppDO::getAuthTime, reqVO.getAuthTime())
                .eqIfPresent(InfoAuthAliAppDO::getAuthUserId, reqVO.getAuthUserId())
                .eqIfPresent(InfoAuthAliAppDO::getCreator, reqVO.getCreator())
                .orderByDesc(InfoAuthAliAppDO::getId));
    }

    default List<InfoAuthAliAppDO> selectList(InfoAuthAliAppExportReqVO reqVO) {
        return selectList(new LambdaQueryWrapperX<InfoAuthAliAppDO>()
                .eqIfPresent(InfoAuthAliAppDO::getAppId, reqVO.getAppId())
                .eqIfPresent(InfoAuthAliAppDO::getThirdAppId, reqVO.getThirdAppId())
                .likeIfPresent(InfoAuthAliAppDO::getAppName, reqVO.getAppName())
                .eqIfPresent(InfoAuthAliAppDO::getAppState, reqVO.getAppState())
                .eqIfPresent(InfoAuthAliAppDO::getAutoReview, reqVO.getAutoReview())
                .eqIfPresent(InfoAuthAliAppDO::getCreator, reqVO.getCreator())
                .betweenIfPresent(InfoAuthAliAppDO::getAuthTime, reqVO.getAuthTime())
                .eqIfPresent(InfoAuthAliAppDO::getAuthUserId, reqVO.getAuthUserId())
                .orderByDesc(InfoAuthAliAppDO::getId));
    }

    default InfoAuthAliAppDO selectByAppId(String appId) {
        return selectOne(InfoAuthAliAppDO::getAppId, appId);
    }

}
